# -*-  coding:utf-8 -*- 
# Author : lihongliang

'''
a3 = (i for i in range(5))
for i in a3:
    print(i)

#不报错，自动过滤错误
'''

# 1
def fib(max):
    n, a, b = 0,0,1
    while n< max:
        print('before yield')
        yield b  # 1 把函数的执行过程冻结在这一步，2 并把B的值 返回给外面的next（），
        # 3 里面有yield，函数名加（），内部代码不执行，只是生成一个生成器对象
        #print(b)
        a,b = b,a+b
        n = n+1
    return  'Done'
print(fib(15))
print(50*"*")  #手动调用，一次调用一个
f = fib(15)
print(next(f))
print(next(f))
print(next(f))
print(next(f))

print(50*"*")   #循环调用
# for i in f :
#     print(i)

